/**
 * @Description
 * @author YouYu 游宇
 * @create 2018-12-05 5:12 PM
 **/

package com.scb.dev.mms.service;

import com.scb.dev.mms.common.ResponseResult;
import com.scb.dev.mms.request.RoleVORequest;

/**
 * @className IRoleService
 * @Description
 * @author YouYu 游宇
 * @create 2018-12-05 5:12 PM
 **/
public interface IRoleService {

    /**
     * @Description: get all role
     * @author: YouYu 游宇
     * @methodName: queryAllRole
     * @param: none
     * @returnType: ResponseResult
     * @createTime: 12/5/2018 5:13 PM
     **/
    ResponseResult queryAllRole();

    /**
     * @Description: get all role
     * @author: YouYu 游宇
     * @methodName: queryAllRole
     * @param: none
     * @returnType: ResponseResult
     * @createTime: 12/5/2018 5:13 PM
     **/
    ResponseResult queryAllRoleName();

    /**
     * @Description: get all role
     * @author: YouYu 游宇
     * @methodName: queryAllRole
     * @param: none
     * @returnType: ResponseResult
     * @createTime: 12/5/2018 5:13 PM
     **/
    ResponseResult queryRoleNameByRoleId(String roleId);


    /**
     * @Description: query menus according to roleId
     * @author: YouYu 游宇
     * @methodName: queryMenuByroleId
     * @param: roleId
     * @returnType: ResponseResult
     * @createTime: 12/6/2018 2:42 AM
     **/
    ResponseResult queryMenusByRoleId(String roleId);

    /**
     * @Description: add a new role
     * @author: YouYu 游宇
     * @methodName: addRole
     * @param: RoleVORequest roleVORequest
     * @returnType: ResponseResult
     * @createTime: 12/7/2018 12:51 AM
     **/
    ResponseResult addRole(RoleVORequest roleVORequest);

    /**
     * @Description: delete role by roleId
     * @author: YouYu 游宇
     * @methodName: deleteRole
     * @param: String roleId
     * @returnType: ResponseResult
     * @createTime: 12/9/2018 10:29 PM
     **/
    ResponseResult deleteRole(String roleId);


    /**
     * @Description: update a role's info
     * @author: YouYu 游宇
     * @methodName: updateRole
     * @param: RoleVORequest roleVORequest
     * @returnType: ResponseResult
     * @createTime: 12/9/2018 11:24 PM
     **/
    ResponseResult updateRole(RoleVORequest roleVORequest);
}
